home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / hdf / newsltr / newslttr.lha / Newsletter4 < prev    next >
Text File  |  1980-02-08  |  27KB  |  689 lines

  1.  
  2.                            HDF Newsletter #4
  3.  
  4. Contents:
  5.  
  6.    Notes and comments
  7.    HDF 3.1 release 5
  8.    Contributions
  9.    Contribution: Vset-to-Postscript and Vset-to-RIS
  10.    Contribution: CGM-to-HDF, and other conversions
  11.    Contribution: HDF for Vax running Ultrix 
  12.    Contribution: HDF-to-DICOMED, HDF-to-postscript, 
  13.                  IRIS-to-HDF, and IRIS-to-DICOMED
  14.    Contribution: Two ports of HDF to NeXT
  15.    HDF ftp directory reorganized
  16.    Spyglass version for Mac FORTRANs
  17.    Random access to Raster Image Sets
  18.    An update on the tools
  19.    Useful addresses and phone numbers
  20.  
  21. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  22.  
  23.                           Notes and Comments
  24.  
  25. A lot has happened with HDF since the last newsletter.  The number of 
  26. our users has increased dramatically, and it shows no signs of letting 
  27. up.  Many of you are using HDF in ways that we never dreamed of,
  28. and many are providing us with useful utilities, bug fixes, and ideas
  29. for future development.
  30.  
  31. This good news is tempered by the fact that it has become harder
  32. and harder to remain responsive to you users.  We have had very
  33. little time over the past year to do the HDF development that we 
  34. have been planning, and the list of unanswered requests for support
  35. and new HDF features has grown very long.
  36.  
  37. Fortunately, several new developments promise to get us back on track.
  38. About a year ago we applied for a "software capitalization"
  39. grant from the National Science Foundation to hire a full-time HDF
  40. support person.  Happily, our proposal was funded, and we brought
  41. Shiming Xu on board this summer.  Shiming has tackled the job with
  42. great enthusiasm, and is already making major contributions to every
  43. aspect of the HDF project.
  44.  
  45. In the summer we hired two undergraduates to help us with some projects
  46. that we have been toying with for some time.  One of the students, Mark
  47. Livingston of Duke University, worked on fitting the netCDF data model
  48. into HDF.  As a result of Mark's fine work, we now have a much better 
  49. understanding of the challenges involved, and will have a real running
  50. start on the real thing if we can get funding.  (We currently have a
  51. proposal pending with NSF to fund this project.)
  52.  
  53. The other student, Nelson Arzola of the University of Illinois, spent
  54. the summer working on adding new number types to HDF scientific data 
  55. sets (SDS).  Nelson made a lot of progress during the summer, and has
  56. continued to work on the progress during the fall.  We have made this
  57. addition to HDF our highest priority, and hope to come out soon with
  58. a release that lets you store 8-bit integers, 16-bit integers, 32-bit
  59. integers, 32-bit floats and 64-bit floats in HDF.
  60.  
  61. As you may know, we are also trying to rewrite all of HDF to add other
  62. much-needed features, such as multiple-file access, better performance,
  63. and better error-handling capabilities.  Starting last Spring, we began
  64. collaborating with The Information Technologies Institute (ITI) in Singapore
  65. on this project.  ITI is very interested in working with NCSA on a number
  66. of projects, and HDF is the first.  Chin Chau Low, former NCSA HDF guru,
  67. is heading up the ITI project.  When this project is completed, we will
  68. call it HDF 4.0.
  69.  
  70. There is more news to report, but we will save it until the next 
  71. Newsletter, which we promise will not be as long in coming as this
  72. one has been.
  73.  
  74. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  75.                             HDF 3.1 release 5
  76.  
  77. HDF 3.1 release 5, installed in early November on NCSA's anonymous ftp 
  78. server.
  79.  
  80. Release 5 supersedes HDF 3.1 release 4, which has been on the server
  81. since July, 1991.. The new release contains the following changes:
  82.  
  83. * Full support added for the following machines and systems:
  84.  
  85.         PC      - IBM PC (DOS)
  86.         WIN     - IBM PC (Microsoft Windows 3.0)
  87.         IBM6000 - IBM RS/6000 (AIX)
  88.         CONVEX  - Convex C-2 (Unix)
  89.  
  90. *  ANSI C support: All code for the library was modified to
  91.    conform to the ANSI C standard.  If your system supports
  92.    ANSI C, the ANSI C versions of routine headers are invoked;
  93.    otherwise the old versions are invoked.
  94.  
  95. *  Bugs were fixed in the following routines:
  96.  
  97.         scup32.f: did not handle odd dimension sizes correctly
  98.         cspck32.f: did not handle odd dimension sizes correctly
  99.         dfpFf.f
  100.         dfpF.c
  101.         dfsd.c
  102.  
  103. * Two new utilities has been added:
  104.  
  105.         ristosds.c - converts raster images to sds.
  106.         hdfpack.c  - compacts an HDF file by reading in all data elements
  107.                      in a file and writing them out to a new file.
  108.  
  109.  
  110. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  111.  
  112.                           Contributions
  113.  
  114. HDF users have donated quite a bit of new software since the last
  115. newsletter.  We have put these in the "HDF/contrib" directory on
  116. the anonymous ftp server.  As usual, we have put them there "as is",
  117. and cannot provide support for them  However, if you do any enhancements
  118. or find any bugs, or (better yet) fix any bugs, let us know and we
  119. will try to update the directories accordingly.  Also, please let
  120. us know which ones you find useful, and how you are using them.
  121.  
  122.  
  123.  
  124. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  125.  
  126.           Contribution: Vset-to-Postscript and Vset-to-RIS
  127.  
  128.  
  129. Location: on the NCSA ftp server in HDF/contrib/walsteijn
  130.  
  131. These two programs are from Fred Walsteijn at the Institute for Marine
  132. and Atmospheric Research at the University of Utrecht.   WE just
  133. received them recently and haven't had a chance to try them out,
  134. but they look really useful.  
  135.  
  136. For some time, Fred has been a consistent contributor of useful and 
  137. high quality software, bug fixes and ideas to the HDF effort.  With 
  138. these two programs he adds some needed functionality to Vsets, especially 
  139. for non-SGI platforms.  He also addresses (in vs2ps) some problems 
  140. our tools have had for some time with interpolation.  Both Mac and 
  141. Unix versions of the programs are provided.
  142.  
  143. Following are exerpts from two of his README files.
  144.  
  145. *** From vs2ris.README:
  146.  
  147. INTRO
  148. -----
  149. Vs2ris is a generalization of fp2hdf.  
  150. It generates color rasters of two-dimensional vset data or curvilinear data
  151. and can be considered as a system-independent implementation of a 2D subset
  152. of NCSA PolyView.  PolyView, however, is available only on the Silicon
  153. Graphics Iris workstations.
  154. Currently, system-independent NCSA tools (such as fp2hdf) allow raster
  155. generation only of rectangular data.
  156. ...
  157.  
  158. STATUS
  159. ------
  160. Vs2ris has been tested on:
  161.    MacII family, DECstations, Convex (in IEEE mode), and Cray-YMP.
  162. On the Convex I use -DALLIANT, therefore the Alliant is likely to
  163. pose no problems.
  164.  
  165.  
  166. *** From vs2ps.README: 
  167.  
  168. INTRO
  169. -----
  170. Vs2ps produces a PostScript file containing one of the following:
  171. 1. a contour plot of data defined on a two-dimensional "rectangular" grid
  172.    and/or a line drawing of this grid.  Input data is given in a single
  173.    HDF file.
  174. 2. a contour plot of data defined on a two-dimensional "curvilinear" grid
  175.    and/or a line drawing of this grid.  Input data is given by two
  176.    straight HDF files (grid only) or three HDF files (contour plot).
  177. 3. a contour plot of data defined on a two-dimensional "finite element"
  178.    grid consisting of triangles and/or quadrangles.  Also a line drawing of
  179.    the vertex set can be produced.  Input data is given in a single
  180.    HDF Vset file.
  181.  
  182. The main advantages of this tool over others are (I think):
  183. a. The accuracy of the (linear) interpolation used for contouring.
  184.    The tool rules out an artificial directional bias common in most other
  185.    contouring packages by a special "saddle point" strategy.  Especially
  186.    sharp/steep "ridges" in the data (not aligned with the grid) are handled
  187.    more accurate than usual for linear methods. (Don't expect miracles from
  188.    a linear technique though.)
  189. b. Contourplots of data defined on curvilinear or finite element grids are
  190.    generated directly from this grid/data. No artificial interpolation to
  191.    an intermediate rectangular grid is used (nor an artificial clipping polygon)
  192. .
  193.    The result will be much more accurate for "difficult" data.
  194. c. The resulting (Encapsulated) PostScript file can be EDITED (etc.) with
  195.    Adobe's Illustrator 3.0. Direct routing to a PostScript printer is
  196.    possible also.
  197. ...
  198.  
  199. STATUS
  200. ------
  201. Vs2ps has been tested on:
  202.    MacII family, DECstations, Convex (in IEEE mode), and Cray-YMP.
  203. On the Convex I use -DALLIANT, therefore the Alliant is likely to
  204. pose no problems.
  205.  
  206.  
  207.  
  208. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  209.  
  210.           Contribution: CGM-to-HDF, and other conversions
  211.  
  212.  
  213. Location: on the NCSA ftp server in HDF/contrib/UCLA
  214.  
  215. This contribution from UCLA includes several different useful 
  216. programs, including a CGM-to-HDF converter.
  217.  
  218. There is a clear need for CGM-to-HDF conversion routines, and we
  219. are pleased to have this donation.  Though this code contains some
  220. IBM 3090 dependencies, you will find that it is well documented and 
  221. should port to UNIX without too much trouble.  If anyone does 
  222. actually port it, please share your program with us so that we 
  223. can share it with the rest of the HDF community.
  224.  
  225. Here is what the README file says about the package:
  226.  
  227. This UCLA contrib subdirectory contains the following:
  228.  
  229.    pcmovie -- a library of subroutines that creates NERSC compressed
  230.       movie files for playing on the IBM PC and PS 2 with NERSC's
  231.       MOVIE program.
  232.  
  233.       Documentation is in pcmovie.doc.
  234.  
  235.    cgmct.to.raster.nopc -- a program which takes graphics from a CGM
  236.       clear text metafile as output by CA-DISSPLA and CA-GKS and
  237.       outputs either:
  238.           -  raw raster images and CLUTs
  239.           -  an HDF file containing raster-8 images
  240.  
  241.       Documentation is in writeup.sg22 and in sg22.doc.
  242.       JCL is in cgmct.to.raster.jcl.
  243.  
  244.    cgmct.to.raster.withpc -- a program which takes graphics from a
  245.       CGM clear text metafile as output by CA-DISSPLA and CA-GKS and
  246.       outputs one of:
  247.           - raw raster images and CLUTs
  248.           - an HDF file containing raster-8 images
  249.           - a NERSC compressed movie file
  250.  
  251.       Documentation is in writeup.sg22 and in sg22.doc.
  252.       JCL is in cgmct.to.raster.jcl.
  253.  
  254.    fix.clrtable -- a program which normalizes the color tables in
  255.       a set of cgm metafiles so as to produce a movie with a
  256.       single color table.
  257.  
  258.       Documentation is in writeup.sg22 and in sg22.doc.
  259.       JCL is in fix.clrtable.jcl.
  260.  
  261.    sas606.cgmct.to.cgmct -- a program which takes a CGM clear text
  262.       metafile as output by SAS 6.06 and changes it to look like one
  263.       created by CA-DISSPLA.  The output file can then be run through
  264.       one of the cgmct.to.raster programs.
  265.  
  266. All programs were written on an IBM 3090 running the MVS operating system
  267. and contain IBM dependences.
  268. The IBM dependences are in the fopen function calls and the lrecl and
  269. blk variables that go along with fopen.
  270. The fix.clrtable program has an assembler language subroutine.  That
  271. subroutine get the ddnames of all the DD statements beginning with
  272. CGM and OUT.  That is how the user specifies the input and output files.
  273.  
  274.  
  275.  
  276. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  277.  
  278.  
  279.              Contribution: HDF for Vax running Ultrix 
  280.  
  281.  
  282. Location: on NCSA anonymous ftp server in  HDF/contrib/VaxUltrix
  283.  
  284.  
  285. The material in this directory represents changes that Dave Anglin of the
  286. NRC in Canada made to HDF in order to make it run correctly on a MicroVax
  287. under Ultrix.  In some cases, we have created diff files to indicate the
  288. changes, rather than reproduce the entire set of files.  The diff files
  289. represent differences from the regular HDF source as of 3/28/91.
  290.  
  291. Thanks for your contributions, Dave.
  292.  
  293.  
  294.  
  295.  
  296. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  297.  
  298.  
  299.            Contribution: HDF-to-DICOMED, HDF-to-postscript, 
  300.                  IRIS-to-HDF, and IRIS-to-DICOMED
  301.  
  302. Location: on NCSA anonymous ftp server in  HDF/contrib/nrl
  303.  
  304. Buck Buchanan's group at Naval Research Lab, has contributed some
  305. nice utilities, including an often-requested HDF-to-postscript
  306. converter.  Here are brief descriptions taken from the code
  307. that they sent to us.
  308.  
  309.  hdftodico.c
  310.   takes an HDF file and translates it into a Dicomed DCN file. 
  311.  
  312.  hdftops.c - HDF image to PostScript image conversion utility
  313.   This RCD utility converts an HDF image  to  either  a  PostScript
  314.   program or to a PostScript compatilble hex file.  This conversion
  315.   will generate programs that use the colorimage operator (which is
  316.   not  supported  by  all  PostScript  implementations)  for 24 bit
  317.   images and 8 bit images that have a palette.  
  318.   
  319.  iristohdf.c
  320.   converts sgi image format to HDF format
  321.  
  322.  iristoddc.c
  323.   converts sgi image format to DICOMED D48 ddc format.
  324.  
  325.  
  326. Thanks, Buck & Co.
  327.  
  328.  
  329. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  330.  
  331.  
  332.            Contribution: Two ports of HDF to NeXT
  333.  
  334.  
  335.  
  336. Location: on NCSA anonymous ftp server in  HDF/contrib/NeXT
  337.  
  338. Two different people have ported HDF to NeXT platforms.  They
  339. are Simon Tortike of the University of Alberta and Henry
  340. Greenside of Duke University.  We are really grateful for
  341. these efforts, as there have been quite a few inquiries 
  342. about HDF from NeXT users.
  343.  
  344.  Simon's code can be found in the subdirectory tortike. It includes
  345.   a new make file and a new dfi.h.  He had to do some special things
  346.   to accommodate his Absoft FORTRAN compiler.  The changes are nicely 
  347.   documented in the make file MAKE.NEXT.  Note that Simon's port was done 
  348.   before HDF3.1 Release 5, so his dfi.h file will be quite a bit different
  349.   from the current.  The main differences are due to addition of sections 
  350.   to accommodate the IBM PC with Windows, the Convex, and the IBM/RS6000, 
  351.   plus some changes made to accommodate ANSI C compilers.
  352.  
  353.  Henry's changes can be found in the subdirectory greenside in a shell
  354.   archive file called "shar", which, like Simon's, includes a new make 
  355.   file and dfi.h. Henry's changes remove dependencies on FORTRAN files,
  356.   since he assumes that a typical NeXT user will use C or f2c. Henry's 
  357.   port was done after HDF3.1 Release 5, so it incorporates those
  358.   the latest (as of Nov. 1991) changes.
  359.  
  360.  
  361. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  362.  
  363.  
  364.                     HDF ftp directory reorganized
  365.  
  366. The HDF ftp directory has been reorganized. The following is a description 
  367. of selected subdirectories and files.
  368.  
  369. HDF:
  370.  
  371.     HDF3.1r4/      HDF 3.1 release 4 (previous release)
  372.     HDF3.1r5/      HDF 3.1 release 5 (latest release)
  373.     HDFVset/       HDF VSet 1.0 and 2.0
  374.     contrib/       contributions from hdf users outside NCSA
  375.     examples/      examples of hdf programs--good for testing, too
  376.     newsletters/   HDF newsletters
  377.     tar3.1r4/      compressed tar files for HDF3.1r4
  378.     tar3.1r5/      compressed tar files for HDF3.1r5
  379.     tarexamples/   compressed tar files of examples
  380.     tarutils/      compressed tar files of fixatr (VMS), fp2hdf, and hdfed
  381.  
  382.  
  383. HDF/HDF3.1r5:
  384.     README.FIRST*
  385.     README.NCSA*
  386.     README.VMS*
  387.     RELEASE.NOTES*
  388.     doc/           HDF documentation
  389.     src/           source files
  390.     utils/         fixatr (VMS), fp2hdf, and hdfed.  (Other utilities can
  391.                       be found in HDF/HDF3.1r5/src/ and in HDF/contrib/)
  392.  
  393. HDF/HDF3.1r5/src:        source code for HDF library and most utilities.
  394.     CODECHANGES - describes changes since last release
  395.     HINTS - hints on how to port HDF to non-supported machines
  396.     INSTALL - instructions on installing HDF (READ THIS BEFORE CALLING)
  397.     df.h - header file included in all HDF source files and user programs
  398.     dfi.h - internal header file, included automatically by df.h
  399.     df.c - low-level routines which perform I/O to HDF files etc.
  400.     (NOTE: for each of the following ".c" files there is a corresponding
  401.            ".h" header file)
  402.     dfr8.c - routines to implement 8-bit raster image groups
  403.     dfgroup.c - routines to read and write groups (of tag/refs)
  404.     dfcomp.c - routines for data compression
  405.     dfimcomp.c - routines to implement the IMCOMP compression scheme
  406.     dfsd.c - routines to implement the Scientific Data set
  407.     dfkit.c - HDF internal utility routines
  408.     dfgr.c - routines for general raster
  409.     dfan.h - header for annotations
  410.     dfan.c - routines for annotations
  411.     dfp.c - routines for palette
  412.     df24.c - routines for 24 bit raster
  413.     dfufp2im.c - float to image conversion routine
  414.     dfversio.c - routine to return HDF version number
  415.     dfutil.c - general purpose utility routines
  416.     cspck32.f  - converts from from Cray float to IEEE float
  417.     scup32.f - converts from IEEE float to Cray float
  418.     Makefile - makefile for the HDF system
  419.     MAKE.*   - make files for individual machines.  Look in each file,
  420.                towards the top, for machines that it applies to.
  421.  
  422.     Files for FORTRAN stubs:
  423.  
  424.     Files specific to VMS:
  425.     dfivms.h - VMS specific header file
  426.     MAKE.COM - VMS make script
  427.     MAKELIB.COM -VMS make script for library
  428.     MAKEUTILS.COM - VMS make script for utilities
  429.     MAKENOF.COM - VMS make script to exclude FORTRAN calls
  430.     SETUPUTILS.COM - VMS file for initializing utilities
  431.     HDFRSEQ.COM
  432.     fixatr/* - files and scripts for making fixatr for VMS
  433.  
  434.     Utility programs:
  435.     hdf24to8.c - source for "hdf24hdf8" which converts HDF raster-24 images
  436.           to raster-8 images
  437.     hdfcomp.c - source for "hdfcomp" which compresses HDF raster-8 images
  438.     hdfls.c - source for "hdfls" which lists contents of HDF files
  439.     hdfpack.c - source for "hdfpack" which reclaims wasted space in HDF files
  440.     hdfrseq.c - source for "hdfseq" which displays images in
  441.             HDF files and "hdfrseq" which produces ICR output for display
  442.             on remote screen
  443.     hdftopal.c - source for "hdftopal" which converts an HDF palette into a
  444.          plain binary palette
  445.     hdftor8.c - src for "hdftor8" which extracts raw 8 bit image and
  446.           palette files from HDF.
  447.     hdftotek.c - source for "hdftotek" which displays Tek images through a
  448.          Tektronix emulator
  449.     paltohdf.c - source for "paltohdf" which does the reverse of "hdftopal"
  450.     ristosds - source for "ristosds", which converts several raster images to
  451.          a single SDS
  452.     r24hdf8.c - source for "r24hdf8" which converts raw 24-bit images into
  453.          HDF raster-8 images
  454.     r8tohdf.c - source for "r8tohdf" which converts raw image,
  455.            palette files to HDF
  456.     showr24.c - source for "showr24" which displays raster-24 images on
  457.          Iris-4 machines
  458.     showr8.c - source for "showr8" which displays raster-8 images on Iris-4's
  459.     srtohdf.c - src for "srtohdf" which converts sun-raster files to HDF
  460.     tektohdf.c - source for "tektohdf" which converts Tek images on stdin
  461.          to an HDF file of raster-8 images
  462.  
  463. doc:
  464.        doc/ascii/NCSA_HDF/*       - ASCII format documentation for HDF
  465.        doc/ascii/HDF_Specs/*      - ASCII format technical specification
  466.               of HDF
  467.        doc/postscript/NCSA_HDF/*  - postscript format documentation for HDF
  468.        doc/postscript/HDF_Specs/* - postscript format technical
  469.                                     specification of HDF
  470.        doc/man                    - man files (currently there's only one)
  471.  
  472.  
  473.  
  474.  
  475. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  476.  
  477.  
  478.                  Spyglass version for Mac FORTRANs
  479.  
  480. Last Spring, Spyglass, Inc. reworked the FORTRAN layer of HDF calls
  481. so that they work with Language Systems FORTRAN and Absoft FORTRAN.
  482. If you use FORTRAN on a Mac and want to use HDF directly, we strongly 
  483. recommend you use the Spyglass version.
  484.  
  485. Note that since this was done last spring, it represents an earlier
  486. release of HDF, and may contain a few bugs that the current version
  487. has fixed.  The interfaces should be identical, however.
  488.  
  489. Thank you, Spyglass, for your help with this.
  490.  
  491. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  492.  
  493.               Random access to Raster Image Sets
  494.  
  495. Several people have run into problems randomly reading or writing
  496. raster images, and also writing to several different files at one
  497. time. The basic problem is that the HDF RIS8 and SDS interfaces were 
  498. not originally set up to provide either random access or multiple-file 
  499. access. This was to keep HDF access as simple as possible. 
  500.  
  501. Now that people are asking for it, we intend to put some random 
  502. accessing capabilities into HDF, and also multiple-file access.
  503. But this will take some time for us to get done.  Meanwhile, there 
  504. is a fairly simple, if somewhat convoluted, way to accomplish both, 
  505. at least for raster image sets and scientific data sets.
  506.  
  507. Here is the basic idea, using the RIS8 interface as an example:
  508.   
  509.   There is a routine in HDF called DFANlablist that gets you a list of
  510.   all labels (if they exist) and ref numbers for a given tag.  If you
  511.   are not interested in labels, you can ignore them (except you have 
  512.   to set up an array to capture them).  But you definitely are 
  513.   interested in the ref numbers.  
  514.   
  515.   Once you have all the ref numbers for the raster images in a file,
  516.   there is a routine called DFR8readref that opens the file and moves 
  517.   to the image you want to read.  The next call to DFR8getdims or 
  518.   DFR8getimage will read the image whose reference number it is you
  519.   want.
  520.  
  521. This approach basically lets you override the assumptions that 
  522. the current interfaces make about what order to read images in,
  523. and what happens when you switch from one file to another.  It is
  524. definitely not efficient, because every access opens a file, reads
  525. or writes something, then closes the file.  But the inefficiency
  526. is not really a problem until you start working with large numbers
  527. of images or files.
  528.  
  529. We have attached an example of a routine that illustrates the basic
  530. idea.  The program assumes that you have a file with several 
  531. raster images in it.  It reads the labels (if they exist) into a 
  532. labellist, and the ref numbers.  Then it prints them out, and 
  533. prompts you to indicate which one you are interested in.  It then 
  534. reads the corresponding image and writes it to another file.
  535.  
  536. Note that the example only uses one input file.  This shouldn't 
  537. matter.  The same approach should work with any number of files.
  538. We have done very little testing of this, so let us know how it 
  539. goes, and also let us know if you have any problems.
  540.  
  541.  
  542. =====================  c version =======================
  543.  
  544. #include <stdio.h>
  545. #include "df.h"            /* this is only needed to define DFTAG_RIG */
  546. char *malloc();
  547.  
  548. #define LISTSIZE 100
  549. #define MAXLEN   15
  550.  
  551. main(argc, argv)
  552. int argc;
  553. char *argv[];
  554. {
  555.     int i, nlabels, startpos=1, ispalette, ret;
  556.     int32 width, height;
  557.     uint16 reflist[LISTSIZE], ref;
  558.     char labellist[MAXLEN*LISTSIZE+1], palette[768], *image; 
  559.     
  560.     printf("Labels of scientific data sets in file %s\n", argv[1]);
  561.     nlabels = DFANlablist(argv[1],DFTAG_RIG, reflist, 
  562.                                   labellist, LISTSIZE, MAXLEN, startpos);
  563.     for (i=0; i<nlabels; i++) 
  564.         printf("\n\t%d\tRef number: %d\tLabel: %s",
  565.                                            i, reflist[i],labellist+(i*15));
  566.     printf("\n\n");
  567.  
  568.     printf("Enter the ref number of the image you want (0 to stop): ");
  569.     scanf("%hd",&ref);
  570.  
  571.     while (ref > 0) {
  572.     ret = DFR8readref(argv[1], ref);
  573.         ret = DFR8getdims(argv[1], &width, &height, &ispalette);
  574.     image = (char *) malloc (width * height);
  575.     ret = DFR8getimage(argv[1], image, width, height, palette);
  576.     ret = DFR8addimage(argv[2], image, width, height, 0);
  577.     ret = free (image);
  578.     printf("Enter the ref number of the image you want (0 to stop): ");
  579.     ret = scanf("%hd",&ref);
  580.     }
  581. }
  582.  
  583.  
  584. =====================  FORTRAN version =======================
  585.  
  586.  
  587.       program getlablist
  588.  
  589. C
  590. C****||************************************************************
  591.  
  592.       integer dallist, d8gimg, d8rref, d8gdims,d8aimg, d8spal
  593.       integer i, nlabels, startpos, ret
  594.       integer reflist(20), ref, width, height, ispalette
  595.       integer DFTAG_RIG, LISTSIZE, MAXLEN
  596.       character image(40000), palette(768)
  597.       character*2  infile, outfile
  598.       character*15  labellist(100)
  599.     
  600.       parameter (DFTAG_RIG   = 306,
  601.      *           LISTSIZE    =  20,
  602.      *           MAXLEN      =  15)
  603.  
  604. C The test files being used are o1 and o2.  Substitute another if 
  605. C you like.
  606.  
  607.       infile = 'o1'
  608.       outfile = 'f2'
  609.  
  610.       startpos = 1
  611.       
  612.       print *, 'Labels of scientific data sets in ', infile
  613.       nlabels = dallist(infile,DFTAG_RIG, reflist,
  614.      *                         labellist, LISTSIZE, MAXLEN, startpos) 
  615.  
  616.       do 100 i=1,nlabels
  617.           print *,'  Ref number: ',reflist(i),'  Label: ',labellist(i)
  618.   100 continue
  619.  
  620.       print *, 'Enter the ref number of the image you want (0 to stop)'
  621.       read *, ref
  622.  
  623.   200 if (ref .eq. 0) goto 300
  624.       ret = d8rref(infile, ref)
  625.       ret = d8gdims (infile, width, height, ispalette)
  626.       ret = d8gimg (infile, image, width, height, palette)
  627.       if (ispalette.ne.0) ret = d8spal(palette)
  628.       ret = d8aimg (outfile, image, width, height, 0)
  629.       print *, 'Enter next ref number (0 to stop)'
  630.       read *, ref
  631.       goto 200
  632.  
  633.   300 stop
  634.       end
  635. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  636.  
  637.                           An update on the tools
  638.  
  639. Here is a selected listing of the latest versions of the tools:
  640.  
  641. NCSA IMAGE 3.1.1: Options to publish and subscribe have been added 
  642. to this new version.
  643.  
  644. IMPORT2HDF: Macintosh program developed to provide conversion of FITS,
  645.             TIFF, GIFF, PICT, Raw raster, and ascii file to HDF.
  646.  
  647. NCSA PALEDIT: New features in the tool panel include
  648.     - interval manipulation tools that allow you to make range selections
  649.       in the palette and component plot simultaneously, and 
  650.     - an interpolation tool, which interpolates across the current palette
  651.       interval
  652.     - several tools and commands that used to solely modify a
  653.       range of the palette now modify intervals of the palette/plot.
  654.  
  655. XDataSlice version 2.0 beta.  New features include:
  656.  
  657.     - contouring.
  658.     - color postscript hardcopy.
  659.     - creating a slice by tracing out a path.
  660.     - some distributed dataset access capability
  661.     - palette manipulation.
  662.  
  663. XImage version 1.2. New features:
  664.  
  665.     - reading of data through DTM network connection, 
  666.     - notebook style parser, 
  667.     - image expansion, and 
  668.     - color contours.  .
  669.  
  670. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  671.  
  672.              Important addresses and phone numbers
  673.  
  674. NCSA's anonymous ftp server is ftp.ncsa.uiuc.edu (141.142.20.50).  Note that
  675. the IP number has changed since the last HDF Newsletter.
  676.  
  677. If you have questions or comments about HDF, you can send them to
  678. softdev@ncsa.uiuc.  If your need is urgent, the phone number to call
  679. is 217-244-3830.
  680.  
  681. If you want your name to be added to the HDF Newsletter mailing
  682. list, please send your name and email address to mfolk@ncsa.uiuc.edu.
  683. If you do not have email access, send your surface mailing address.
  684. Also include any other information that you think we might like to
  685. know, like the organization you work for and how you use HDF.
  686.  
  687. If you want your name deleted from the HDF Newsletter mailing list,
  688. send your request to mfolk@ncsa.uiuc.edu.
  689.